﻿var TipoPaqueteTrabajo_Controller =
{
    InitGrid:
    function TipoPaqueteTrabajo_Controller_InitGrid() {
        var grid =
        {
            Target: "divGridTipoPaqueteTrabajo",
            TableId: "gridTipoPaqueteTrabajo",
            PrimaryKey: "Id",
            Fields:
            [
                { Header: "Nombre", DataField: "Nombre", DataFieldEdit: "Nombre", Width: "150px", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium, Required: true },
                { Header: "Descripcion", DataField: "Descripcion", DataFieldEdit: "Descripcion", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 520, ControlCss: CssWeb.TextBoxXLarge },
                { Header: "Habilitado", DataField: "Habilitado", Width: "90px", StyleCss: CssWeb.FormatCenter, DataFieldEdit: "Habilitado", ControlEdit: GridJSON.CheckBox }
            ],
            RecordSearch: { ProyectoId: null, Nombre: "", Descripcion: "" },
            ShowPaging: DatosControles.GridJSON_ShowPagging,
            ChooseShowPaging: DatosControles.GridJSON_ChoosePagging,
            TotalRecords: 0,
            PageIndex: 1,
            OrderBy: "Nombre Asc",
            FunctionLoadGrid: TipoPaqueteTrabajo_Controller.ListarGridJSON,
            FunctionExportToExcel: TipoPaqueteTrabajo_Controller.ExportarExcelGrid,
            FunctionAddRecord: TipoPaqueteTrabajo_Controller.EditarRegistro,
            FunctionSaveRecord: TipoPaqueteTrabajo_Controller.GrabarRegistro,
            ButtonsActionRecord:
            [
                { styleCss: CssWeb.GridJSON_IconEdit, toolTip: DatosControles.GridJSON_ToolTipEditar, functionAction: TipoPaqueteTrabajo_Controller.EditarRegistro },
                { styleCss: CssWeb.GridJSON_IconDetail, toolTip: DatosControles.GridJSON_ToolTipDetalle, functionAction: TipoPaqueteTrabajo_Controller.DetalleRegistro }
            ]
        };

        TipoPaqueteTrabajo_Controller.Grid = grid;
    },

    Grid: {},

    ListarGridJSON:
    function Tabla_Controller_ListarGridJSON(registroBusqueda, orderBy, cantidadMostrar, paginaActual) {
        TipoPaqueteTrabajo_Controller.Grid.RecordSearch = registroBusqueda;
        TipoPaqueteTrabajo_Controller.Grid.ChooseShowPaging = cantidadMostrar;
        TipoPaqueteTrabajo_Controller.Grid.PageIndex = paginaActual;
        TipoPaqueteTrabajo_Controller.Grid.OrderBy = orderBy;

        TipoPaqueteTrabajo_Controller.ListarGridPaging();
    },

    ListarGridPaging:
    function TipoPaqueteTrabajo_Controller_ListarGridPaging() {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/ListarTiposPaqueteTrabajo",
            JSON.stringify
            ({
                registroBusqueda: TipoPaqueteTrabajo_Controller.Grid.RecordSearch,
                paginaActual: TipoPaqueteTrabajo_Controller.Grid.PageIndex,
                cantidadMostrar: TipoPaqueteTrabajo_Controller.Grid.ChooseShowPaging,
                orderBy: TipoPaqueteTrabajo_Controller.Grid.OrderBy
            }),
            TipoPaqueteTrabajo_Controller.ListarGridPaging_CallBack
        );
    },

    ListarGridPaging_CallBack:
    function TipoPaqueteTrabajo_Controller_ListarGridPaging_CallBack(response) {
        var view = response.d;

        TipoPaqueteTrabajo_Controller.Grid.TotalRecords = view.TotalRegistros;

        GridJSON.DataBind(TipoPaqueteTrabajo_Controller.Grid, view.TiposPaqueteTrabajo);

        Global_UI.BlockUI(false);
    },

    ExportarExcelGrid:
    function TipoPaqueteTrabajo_Controller_ExportarExcelGrid(registroBusqueda) {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/ExportarExcelTiposPaqueteTrabajo",
            JSON.stringify
            ({
                registroBusqueda: registroBusqueda,
                gridFields: TipoPaqueteTrabajo_Controller.Grid.Fields
            }),
            TipoPaqueteTrabajo_Controller.ExportarExcelGrid_CallBack
        );
    },

    ExportarExcelGrid_CallBack:
    function TipoPaqueteTrabajo_Controller_ExportarExcelGrid_CallBack(response) {
        Global_UI.MostrarExportacionExcel(response.d);

        Global_UI.BlockUI(false);
    },

    EditarRegistro:
    function TipoPaqueteTrabajo_Controller_EditarRegistro(id) 
    {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/CargarTipoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            TipoPaqueteTrabajo_Controller.EditarRegistro_CallBack
        );
    },

    EditarRegistro_CallBack:
    function TipoPaqueteTrabajo_Controller_EditarRegistro_CallBack(response) {
        var registro = response.d;

        GridJSON.EditRecordGrid(TipoPaqueteTrabajo_Controller.Grid, registro);

        Global_UI.BlockUI(false);
    },

    GrabarRegistro:
    function TipoPaqueteTrabajo_Controller_GrabarRegistro(registro) {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/GrabarTipoPaqueteTrabajo",
            JSON.stringify
            ({
                registro: registro
            }),
            TipoPaqueteTrabajo_Controller.GrabarRegistro_CallBack
        );
    },

    GrabarRegistro_CallBack:
    function TipoPaqueteTrabajo_Controller_GrabarRegistro_CallBack(response) {
        var view = response.d;

        GridJSON.ReconstructRecordGrid(TipoPaqueteTrabajo_Controller.Grid, view.TipoPaqueteTrabajo, view.NuevoRegistro);

        Global_UI.BlockUI(false);
    },

    DetalleRegistro:
    function TipoPaqueteTrabajo_Controller_DetalleRegistro(tareaId) 
    {
        Global_UI.BlockUI(true);

        ConfiguracionPaqueteTrabajo_ASPX.LoadDialogEstados(tareaId);
    }
};

var EstadoPaqueteTrabajo_Controller =
{
    InitGrid:
    function EstadoPaqueteTrabajo_Controller_InitGrid() {
        var grid =
        {
            Target: "divGridEstadoPaqueteTrabajo",
            TableId: "gridEstadoPaqueteTrabajo",
            PrimaryKey: "Id",
            Fields:
            [
                { Header: "Orden", DataField: "Orden", DataFieldEdit: "Orden", Width: "80px", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, ControlCss: CssWeb.TextBoxShort, MaxLength : 8, Required: true,RegularExpression: RegularExpression.NumeroEntero  },
                { Header: "Nombre", DataField: "Nombre", DataFieldEdit: "Nombre", Width: "150px", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 100, ControlCss: CssWeb.TextBoxMedium, Required: true },
                { Header: "Descripcion", DataField: "Descripcion", DataFieldEdit: "Descripcion", StyleCss: CssWeb.FormatText, ControlEdit: GridJSON.TextBox, MaxLength : 520, ControlCss: CssWeb.TextBoxXLarge },
                { Header: "Habilitado", DataField: "Habilitado", Width: "90px", DataFieldEdit: "Habilitado", ControlEdit: GridJSON.CheckBox }
            ],
            RecordSearch: { TipoPaqueteTrabajoId: "", Orden: "", Nombre: "", Descripcion: "" },
            ShowPaging: DatosControles.GridJSON_ShowPagging,
            ChooseShowPaging: DatosControles.GridJSON_ChoosePagging,
            TotalRecords: 0,
            PageIndex: 1,
            OrderBy: "Orden Asc",
            FunctionLoadGrid: EstadoPaqueteTrabajo_Controller.ListarGridJSON,
            FunctionExportToExcel: EstadoPaqueteTrabajo_Controller.ExportarExcelGrid,
            FunctionAddRecord: EstadoPaqueteTrabajo_Controller.EditarRegistro,
            FunctionSaveRecord: EstadoPaqueteTrabajo_Controller.GrabarRegistro,
            ButtonsActionRecord:
            [
                { styleCss: CssWeb.GridJSON_IconEdit, toolTip: DatosControles.GridJSON_ToolTipEditar, functionAction: EstadoPaqueteTrabajo_Controller.EditarRegistro },
                { styleCss: "", toolTip: "", functionAction: function(){} }
            ]
        };

        EstadoPaqueteTrabajo_Controller.Grid = grid;
    },

    Grid: {},

    ListarGridJSON:
    function Tabla_Controller_ListarGridJSON(registroBusqueda, orderBy, cantidadMostrar, paginaActual) 
    {
        EstadoPaqueteTrabajo_Controller.Grid.RecordSearch = registroBusqueda;
        EstadoPaqueteTrabajo_Controller.Grid.ChooseShowPaging = cantidadMostrar;
        EstadoPaqueteTrabajo_Controller.Grid.PageIndex = paginaActual;
        EstadoPaqueteTrabajo_Controller.Grid.OrderBy = orderBy;

        EstadoPaqueteTrabajo_Controller.ListarGridPaging();
    },

    ListarGridPaging:
    function EstadoPaqueteTrabajo_Controller_ListarGridPaging() {
        Global_UI.BlockUI(true);

        EstadoPaqueteTrabajo_Controller.Grid.RecordSearch.TipoPaqueteTrabajoId = $("#hiddenTareaId").val();

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/ListarEstadosPaqueteTrabajo",
            JSON.stringify
            ({
                registroBusqueda: EstadoPaqueteTrabajo_Controller.Grid.RecordSearch,
                paginaActual: EstadoPaqueteTrabajo_Controller.Grid.PageIndex,
                cantidadMostrar: EstadoPaqueteTrabajo_Controller.Grid.ChooseShowPaging,
                orderBy: EstadoPaqueteTrabajo_Controller.Grid.OrderBy
            }),
            EstadoPaqueteTrabajo_Controller.ListarGridPaging_CallBack
        );
    },

    ListarGridPaging_CallBack:
    function EstadoPaqueteTrabajo_Controller_ListarGridPaging_CallBack(response) 
    {
        var view = response.d;

        EstadoPaqueteTrabajo_Controller.Grid.TotalRecords = view.TotalRegistros;

        GridJSON.DataBind(EstadoPaqueteTrabajo_Controller.Grid, view.EstadosPaqueteTrabajo);

        Global_UI.BlockUI(false);
    },

    ExportarExcelGrid:
    function EstadoPaqueteTrabajo_Controller_ExportarExcelGrid(registroBusqueda) {
        Global_UI.BlockUI(true);

        registroBusqueda.TipoPaqueteTrabajoId = $("#hiddenTareaId").val();

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/ExportarExcelEstadosPaqueteTrabajo",
            JSON.stringify
            ({
                registroBusqueda: registroBusqueda,
                gridFields: EstadoPaqueteTrabajo_Controller.Grid.Fields
            }),
            EstadoPaqueteTrabajo_Controller.ExportarExcelGrid_CallBack
        );
    },

    ExportarExcelGrid_CallBack:
    function EstadoPaqueteTrabajo_Controller_ExportarExcelGrid_CallBack(response) {
        Global_UI.MostrarExportacionExcel(response.d);

        Global_UI.BlockUI(false);
    },

    EditarRegistro:
    function EstadoPaqueteTrabajo_Controller_EditarRegistro(id) {
        Global_UI.BlockUI(true);

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/CargarEstadoPaqueteTrabajo",
            JSON.stringify
            ({
                id: id
            }),
            EstadoPaqueteTrabajo_Controller.EditarRegistro_CallBack
        );
    },

    EditarRegistro_CallBack:
    function EstadoPaqueteTrabajo_Controller_EditarRegistro_CallBack(response) {
        var registro = response.d;

        GridJSON.EditRecordGrid(EstadoPaqueteTrabajo_Controller.Grid, registro);

        Global_UI.BlockUI(false);
    },

    GrabarRegistro:
    function EstadoPaqueteTrabajo_Controller_GrabarRegistro(registro) {
        Global_UI.BlockUI(true);

        registro.TipoPaqueteTrabajoId = $("#hiddenTareaId").val();

        Global_UI.AjaxPOST
        (
            "ConfiguracionPaqueteTrabajo.aspx/GrabarEstadoPaqueteTrabajo",
            JSON.stringify
            ({
                registro: registro
            }),
            EstadoPaqueteTrabajo_Controller.GrabarRegistro_CallBack
        );
    },

    GrabarRegistro_CallBack:
    function EstadoPaqueteTrabajo_Controller_GrabarRegistro_CallBack(response) 
    {
        var view = response.d;

        GridJSON.ReconstructRecordGrid(EstadoPaqueteTrabajo_Controller.Grid, view.EstadoPaqueteTrabajo, view.NuevoRegistro);

        Global_UI.BlockUI(false);
    }
};

var ConfiguracionPaqueteTrabajo_ASPX =
{
    Load:
    function ConfiguracionPaqueteTrabajo_ASPX_Load() 
    {
        Global_UI.JqueryModalForm("dialogEstadosPaqueteTrabajo", 680, 1000, function () { EstadoPaqueteTrabajo_Controller.Grid = null; $("#gridEstadoPaqueteTrabajo").remove(); });

        $("#btnConsultar").click(function () { GridJSON.SearchRecordsGridJSON(TipoPaqueteTrabajo_Controller.Grid); });
        $("#btnNuevo").click(function () { GridJSON.AddRecordGridJSON(TipoPaqueteTrabajo_Controller.Grid); });

        TipoPaqueteTrabajo_Controller.InitGrid();
        TipoPaqueteTrabajo_Controller.ListarGridPaging();
    },

    LoadDialogEstados:
    function ConfiguracionPaqueteTrabajo_ASPX_LoadDialogEstados(tareaId) 
    {
        $("#hiddenTareaId").val(tareaId);

        Global_UI.JqueryModalFormOpen("dialogEstadosPaqueteTrabajo");

        EstadoPaqueteTrabajo_Controller.InitGrid();
        EstadoPaqueteTrabajo_Controller.ListarGridPaging();
    }
}